#pragma once

#include "VisioCommon.h"
#include "ImageMatch.h"
#include <vector>
#include <opencv2\opencv.hpp>

//class declarations
typedef vector<cv::Mat> ImagesVector;
typedef vector<CImageMatch*> MatchedImages;
typedef vector<cv::Point2d> PointVector;

class CImageMatcher
{
public:
	CImageMatcher();
	~CImageMatcher();
	MatchedImages* Match(ImagesVector& Images);
	MatchedImages* MatchFromFile(ImagesVector& Images, char* fileName);
	CImageMatch* MatchSinglePair(cv::Mat im1, cv::Mat im2, int FirstImageIndex, int SecondImageIndex);
	void ToggleShowMatches();
	bool IsShowMatches() const;
private:
	bool m_bShowImages;
};